/**
 * 解析目标元素，支持选择器字符串、HTMLElement实例
 * @param {string | HTMLElement} target - 目标元素，可以是CSS选择器字符串、HTMLElement实例
 * @returns {HTMLElement} 解析后的HTMLElement实例
 * @throws {Error} 当无法解析为有效的HTMLElement时抛出错误
 */
export function resolveTarget(target: string | HTMLElement): HTMLElement {
  if (typeof target === 'string') {
    const element = document.querySelector(target);
    if (!element) throw new Error(`找不到目标元素: ${target}`);
    if (!(element instanceof HTMLElement)) throw new Error(`目标不是有效的HTMLElement: ${target}`);
    return element;
  } else if (target instanceof HTMLElement) {
    return target;
  }
  throw new Error('不支持的目标元素类型');
}